/*
 * Copyright 2007 The semap project development team.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Created by myn at 07.08.2007 15:42:03.
 *
 * Contact Service main interface.
 *
 * $Id: ContactService.java 438 2007-08-29 11:17:36Z Mike.Navern $
 */
package com.google.code.contactserv.service;

import com.google.code.contactserv.ContactServException;
import com.google.code.contactserv.model.Contact;
import com.google.code.contactserv.model.PropertyHolder;
import com.hp.hpl.jena.rdf.model.Model;

import java.util.List;

/**
 * @author myn
 */
public interface ContactService {
    public void init(String fileName) throws ContactServException; /* FIXME Remove it from the interface */
    public Model getModel();
    public List<Contact> find();
    public List<Contact> find(List<PropertyHolder> props);
//    public List<Contact> findAll();
//    public List<Contact> findByNick(String nickName);
//    public List<Contact> findSPARQL(String queryString);
    public boolean exist(String uri);
    public Contact get(String uri);
    public void add(Contact contact);
    public void update();
    public void remove(String uri);

    public Contact createContact(String uri);
}
